package com.lfd.util;

import javax.servlet.http.HttpSession;

import com.lfd.entity.User;



/**
 * 单例模式
 * 使用时将代码中Student更改User即可
 * 方便在任何地方获取用户信息
 * @author tian
 * @param <T>
 */
public class UserUtil {
   //构造函数私有化，防止外界调用
   private UserUtil() {
	   
   }
   private static UserUtil userUtil =new UserUtil();
   
   private HttpSession session = null;
   /**
        * 初始化操作 存储用户信息
    * @param session
    * @param student
    */
   public static void init(HttpSession session,User User) {
	   if (session != null && User != null) {
		   userUtil.session = session;
		   session.setAttribute("user", User);
	   }else {
		 throw new RuntimeException("初始化时，HttpSession或Student为空");
	   }
   }
    /**
           * 获取用户
     * @return
     */
	public static User getVo() {
		if (userUtil == null || userUtil.session == null || userUtil.session.getAttribute("user") == null) {
			throw new RuntimeException("UserUtil未完成初始化或登录已经过期");
		}
		return (User) userUtil.session.getAttribute("user");
	}
	
	/**
	  *  获取用户id
	 * @return
	 */
	   public static Long getId() {
			return getVo().getUserid();
	  }
	   
   /**
	  * 清空用户信息
	* @return
	*/
	   public static void clear() {
		     if(userUtil.session != null) {
		    	 userUtil.session.invalidate();
		     }
	  }
   
}
